class_name HItemUseAbility
extends HAbility

## 物品使用能力基类
## 负责协调物品的使用过程
## 遵循单一职责原则：只负责物品使用的协调，不包含具体的使用逻辑

## 使用指定的物品（基础版本）
## @param item_container: 物品容器
## @param user_entity: 使用者实体
func use_item(item_container: HItemContainer, user_entity: Entity):
	if not item_container:
		print("物品容器为空")
		return
	
	if not user_entity:
		print("使用者实体为空")
		return
	
	# 创建物品实例
	var item_instance = item_container.create_item_instance()
	if not item_instance:
		print("无法创建物品实例")
		return
	
	# 创建基础使用上下文
	var context = create_basic_use_context(user_entity)
	
	# 使用物品
	item_instance.item_use(context)

## 创建基础物品使用上下文
## @param user_entity: 使用者实体
## @return ItemUseContext: 创建的使用上下文
func create_basic_use_context(user_entity: Entity) -> ItemUseContext:
	var context = ItemUseContext.new(user_entity)
	
	# 设置世界位置（使用者的位置）
	if user_entity and user_entity.attach_node:
		context.set_world_position(user_entity.attach_node.global_position)
	
	# 设置默认目标位置（前方10米）
	var default_target = context.world_position + Vector3.FORWARD * 10.0
	context.set_target_position(default_target)
	
	return context

## 执行物品使用
## 提供更直接的使用接口
func execute():
	print("执行物品使用能力")
